package com.neuedu.corejava.ch8;

public class Student {
	// 学生姓名
	private String name;
	// 计算机课程成绩
	private double computer;

	public Student() {
		super();
	}
	
	public Student(String name, double computer) {
		super();
		this.name = name;
		this.computer = computer;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public double getComputer() {
		return computer;
	}

	public void setComputer(double computer) {

		this.computer = computer;
	}

	/**
	 * 
	 * 显示学生信息的方法
	 */
	public void showIfno() throws CrmException { // 在方法内部，如果有异常抛出，则需要在方法定义时，进行异常的声明；声明的异常必须是抛出的异常后抛出异常的父类
		if (computer < 0) {
			// 在方法定义时，必须进行处理，在方法定义时一般进行异常的声明
			throw new CrmException("课程成绩不能为负数"); // 在方法编写时，可以使用throw抛出一个异常对象，如果是抛出一个检查异常，则需要进行处理
		}
		System.out.println("姓名： " + name + ",成绩：" + computer);
	}

	//// 运行异常可以不声明；声明多个异常，有父子关系的异常也可以声明
	public void showIfno2() throws  IllegalArgumentException,RuntimeException{
		if (computer < 0) {
			// RuntimeException 运行时异常，可以不进行处理
			throw new RuntimeException("课程成绩不能为负数"); // 在方法编写时，可以使用throw抛出一个异常对象，如果是抛出一个检查异常，则需要进行处理
		}
		if (computer > 100) {
			throw new IllegalArgumentException("成绩不能高于100");
		}
	
		System.out.println("姓名： " + name + ",成绩：" + computer);
	}

	
	public static void main(String[] args) {
		Student student = new Student("Jack", 98);
		try {
			student.showIfno();
		} catch (Exception e) {
			e.printStackTrace();
		}
		student.showIfno2();
	}

}
